Method of and apparatus for data transmission

ABSTRACT

A method and apparatus for data transmission between a sending node and a receiving node is provided. The sending node has a transmission executor for sending a decrypted message as a plurality of packets. When the encrypted message includes a message authentication code (MAC), the sending node sets an indicator in the packet that the result of MAC authentication will be sent later. The packet is sent from the sending node to the receiving node in a pipeline mode. The receiving node has buffer, and a preprocessor for preprocessing the payload of the packet. If the operation requested or the preprocessing required by the payload does not require MAC authentication, the requested operation/preprocessing will be executed. Otherwise, the receiving node defers the execution until the corresponding positive notification of MAC authentication is received from the sending node. Handling of negative MAC authentication is policy based at the receiving node.

FIELD OF THE INVENTION

[0001] The present invention relates to the method of and apparatus for data transmission and is particularly concerned with pipeline mode transmission.

BACKGROUND OF THE INVENTION

[0002] Security protocols such as IPSec (Internet Protocol Security), SSL/TLS (Secure sockets Layer/Transport Layer Security) and others use cryptographic functions that are both CPU and memory intensive.

[0003] To aggravate the problem, most commercial implementation of cryptographic functions only handle complete Packet Data Units (PDU)—meaning, the receiving end of a flow of cipher text must re-assemble the complete unit of data encrypted by the transmitting end. As a result, latency (which adds to response time) is incurred while the receiving end reconstructs the PDU.

[0004] This process, in turns, requires substantial memory for buffering and very significant CPU cycles for ordering fragments, complying with transmission protocol such as TCP and providing intricate buffer management.

[0005] As the Internet transforms into the virtual highway for day-to-day applications such as e-mail, e-banking and e-trading, security with minimal cost in performance is becoming a necessity.

SUMMARY OF THE INVENTION

[0006] An object of the present invention is to provide an improved method of and apparatus for data transmission.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007] The present invention will be further understood from the following detailed description of a preferred embodiment with reference to the drawings, in which:

[0008] FIGURE illustrates in a functional block diagram a method of data transmission in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0009] Referring to the FIGURE, there is illustrated in a functional block diagram, a method of data transmission in accordance with an embodiment of the present invention. An encrypted message 10 for a protocol such as Secure Socket Layer (SSL) may become much longer than the packet length supported by the transport layer, consequently the message must be fragmented to fit into the packets, for example the encrypted message 10 is fragmented into sections A, B, and C referenced as 12, 14, and 16, respectively. These sections 12, 14, and 16 are then put into packets 18, 20 and 22, respectively with appropriate headers, for example TCP/IP headers.

[0010] A client 24, then sends these packets to a server 26, via switch 30 in network 28. The switch 30, determines the flow with which the packet is associated, performs partial decryption and partial message authentication (handling is dictated by the selected cryptographic algorithms) and forwards the decrypted and partially authenticated segments (38, 40 and 42) to server 26. Via prior configuration, on receiving clear data segments, server 26 performs only portions of the transaction that do not require message (or MAC) authentication. Examples of such portions of transaction are record look up, correlation of records from multiple databases, inventory check, balance check, etc.

[0011] As an improvement, an indicator can be inserted into the packets to indicate to the receiving node if there was a MAC in the corresponding encrypted message. Assuming that the customer policy dictates the level of security, (e.g. MAC is mandatory for application X) then, as a short cut, the receiving node can use this indicator to identify operations that require MAC authentication.

[0012] When all the segments of the current PDU are received and the MAC is fully authenticated, a notification is sent to server 26. Upon receiving the notification, server 26 executes the transaction(s) that requires message authentication. Examples of such transaction are money transfer, purchases, download of confidential data, etc. For transactions that do not require full MAC authentication (for example, asking for a graphic image on a secured page), server 26 may elect (according to its policy) to proceed without a full MAC authentication.

[0013] This approach of explicit notification of message authentication has the following advantages:

[0014] 1. It allows partial unit handling without security breach, thereby, it saves the memory required for buffering the entire unit of data. This translates to substantially lower cost of goods.

[0015]  Take SSL, the ubiquitous security protocol for Internet traffic, as an example. The encrypted data are sent in SSL records that can be up to 16K bytes each. If encrypted units must be re-constructed prior to decryption, the buffering requirements will be substantial. In the worst case, this will be (the maximum unit size*the number of simultaneous sessions supported). For example, 100K simultaneous SSL sessions will require 100K*16K=1.6 G bytes of memory

[0016]  If partial unit handling can be done, the memory requirement can be as small as one tenth of the above (e.g. handling can be done as TCP segments are received.)

[0017] 2. It saves latency and therefore improves response time in that data can be processed as they are received in a pipelined mode instead of a store-and-forward mode. CPU cycles and memory accesses required for buffering and context switching are no longer needed. The end system can easily scale three- to five-fold that of systems operating in the store-and-forward mode. For an end system, this results in higher throughput at lower cost.

[0018] 3. Since data are sent as they are received, this allows the pre-fetching of a transaction, pre-processing and so on. It makes possible all kinds of pre-processing of a transaction. The list of benefits goes on.

[0019] Without explicit notification of MAC authentication, partial unit handling and forwarding breaks the security provided by a Message Authentication Code (MAC) in that a window is now opened to the cryptanalysts. Data can be altered and the change to the message will not be detected until message authentication occurs at the end of the transmit unit. In the case where multiple transactions or operations are sent in a single encrypted PDU, altered transactions can be executed before the complete message is authenticated.

[0020] Granted that this is difficult to break, this practice violates the security intent of using a Message Authentication Code. In other words, if this security hole is allowed to happen then MAC can be broken, which is a protocol violation.

[0021] The present embodiment is not limited to any particular protocol. As HTTP over SSL/TLS is becoming a common protocol for secured web based transactions, HTTP over SSL/TLS is used as an example here. The present embodiments can be implemented by adding a special HTTP header or footer to signal that the transmitted data has been fully authenticated. 

What is claimed is:
 1. A method of providing a secure data transmission between a sending node and a receiving node, the method comprising the steps of: (1) determining whether an encrypted message includes a message authentication; (2) forming a plurality of packets corresponding to the encrypted message when the determining step determines that the encrypted message includes the authentication, each of the packets including an indicator flagging presence of the authentication; (3) establishing the data transmission between the sending node and the receiving node to send the packet from the sending node to the receiving node in a pipeline mode where fragments of the decrypted packet are sent before full MAC authentication; and (4) allowing the receiving end to perform operations where full MAC authentication is not required, to postpone the execution of operations where full MAC authentication is required until notification of positive full MAC authentication and to abort such operations on negative notification of full MAC authentication.
 2. The method of claim 1 wherein the forming step includes a step of fragmenting the decrypted message into a plurality of payloads.
 3. The method of claim 1 wherein the forming step further includes a step of setting an indicator to the packet.
 4. The method of claim 1 further comprising a step of sending the packet from the sending node to the receiving node in the pipeline mode.
 5. The method of claim 1 further comprising a step of forming a plurality of packets corresponding to the message without the indicator when the determining step determines that the encrypted message does not include the MAC.
 6. The method of claim 5 wherein the step of forming a plurality of packets corresponding to the message without the indicator includes a step of fragmenting the message into a plurality of payloads.
 7. The method of claim 6 further comprising a step of sending the packet from the sending node to the receiving node in the pipeline mode.
 8. The method of claim 1 further comprising a step of determining whether the encrypted message is longer than one packet payload.
 9. The method of claim 8 further comprising a step of placing the decrypted message into the packet when the determining step determines that the decrypted message can be placed in the one packet.
 10. The method of claim 9 wherein the placing step includes a step of sending the one packet from the sending node to the receiving node.
 11. The method of claim 1 further comprising a step of receiving the packet in the receiving node and a step of determining whether the received packet includes an indicator.
 12. The method of claim 11 further comprising a step of preprocessing the payload of the packet when the determining step determines that the received packet includes an indicator.
 13. The method of claim 12 further comprising a step of buffering the result of the preprocessing step.
 14. The method of claim 13 further comprising a step of determining whether the encrypted counterpart has a MAC.
 15. The method of claim 14 further comprising a step of reordering the buffered packets to assemble a complete message corresponding to the decrypted message.
 16. The method of claim 15 further comprising a step of waiting for the result of MAC authentication if so required by the policy of the receiving node.
 17. The method of claim 16 further comprising a step of executing the content of the decrypted message after positive notification of MAC authentication if positive MAC authentication is required for the execution.
 18. The method of claim 11 further comprising a step of executing the payload of the packet when the determining step determines that the received packet does not include an indicator.
 19. The method of claim 11 further comprising a step of reordering the buffered packets.
 20. A method of providing a data transmission between a sending node and a receiving node, the sending node sending to the receiving node the decrypted message as one or more packets in a pipeline mode, the packets including an indicator flagging the presence of a Message Authentication Code in the corresponding encrypted message, the sending node sending the notification of MAC authentication (positive or negative) to the receiving node, the method comprising the steps of: (1) receiving the packet in the receiving node, (2) determining whether the received packet includes an indicator; and (3) preprocessing a payload of the packet when the determining step determines that a. there was no MAC in the corresponding encrypted message (i.e. no indicator) and that the requested operation does not require MAC authentication. b. the policy at the receiving node for the requested operation requires no MAC authentication. (4) processing a payload of the packet when the determining step determines that MAC is required for the operation, the corresponding encrypted message has a MAC and that a positive MAC authentication has been received.
 21. The method of claim 20 further comprising a step of buffering the result of the preprocessing step.
 22. The method of claim 21 further comprising a step of determining whether the preprocessed packet includes the MAC.
 23. The method of claim 22 further comprising a step of reordering the buffered packets to assemble a complete message corresponding to the encrypted message when the determining step determines that the preprocessed packet requires MAC authentication.
 24. A transmission executor for providing a data transmission from a sending node to a receiving node, the transmission executor comprising: a manager for determining whether an encrypted message includes a message authentication code (MAC); an executor for forming a plurality of packets corresponding to the decrypted message when the manager determines that the encrypted message includes the MAC, each of the packets including an indicator flagging presence of the MAC in the encrypted message; and a transmission manager for sending the packet from the sending node to the receiving node in a pipeline mode; and a transmission manager for notifying the receiving node of the result of MAC authentication.
 25. A receiving executor for providing a data transmission between a sending node and a receiving node, the sending node sending to the receiving node the decrypted message as one or more packets in a pipeline mode, the packets including the indicator flagging presence of a Message Authentication Code when the encrypted message includes the MAC, the notification of MAC authentication result, the executor comprising: a receiving manager for receiving the packet; a manager for determining whether the received packet includes the indicator; and a preprocessor for preprocessing a payload of the packet when the manager determines the received packet does not require MAC and a processor for a payload when the manager determines that the received packet requires MAC authentication and that a positive notification of MAC authentication has been received.
 26. Apparatus for providing a data transmission between a sending node to a receiving node, the apparatus comprising: a transmission executor having an executer for forming a plurality of packets corresponding to the encrypted message when the encrypted message includes a Message Authentication Code (MAC), each of the packets including an indicator flagging presence of the MAC in the encrypted message, and a transmission manager for sending the decrypted packets from the sending node to the receiving node in a pipeline mode and a notification of the result of MAC authentication; and a receiving executor having a buffer and a preprocessor for preprocessing a payload of the packet when the packet received from the transmission executor does not require MAC authentication or requires MAC authentication and positive notification has been received.
 27. Apparatus of claim 26 wherein the sending node is a server.
 28. Apparatus of claim 26 wherein the sending node is a client.
 29. Apparatus of claim 26 wherein the receiving node is a server.
 30. Apparatus of claim 26 wherein the receiving node is a client. 